home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / TEST / SHELWRI2.M < prev    next >
Encoding:
Text File  |  1989-11-22  |  1.6 KB  |  68 lines

  1. MODULE AccDemo;
  2.  
  3.     (*
  4.      *               Demo program for an accessory
  5.      *
  6.      *           written by Andreas Pauletti 29.05.1988
  7.      *                   with MEGAMAX MODULA-2
  8.      *)
  9.  
  10. FROM SYSTEM IMPORT ADR;
  11.  
  12. IMPORT GEMEnv;
  13. FROM AESForms IMPORT FormAlert;
  14. FROM AESEvents IMPORT MessageEvent, MessageBuffer, accOpen;
  15. FROM AESMenus IMPORT RegisterAcc;
  16. FROM PrgCtrl IMPORT Accessory;
  17. IMPORT AESMisc;
  18.  
  19.  
  20. VAR
  21.   devHdl: GEMEnv.DeviceHandle;
  22.   gemHdl: GEMEnv.GemHandle;
  23.   menuID: CARDINAL;
  24.   menuEntry: ARRAY[0..19] OF CHAR; (* must be global!! *)
  25.   msg: MessageBuffer;
  26.   done: BOOLEAN;
  27.   retButton: CARDINAL;
  28.  
  29. PROCEDURE DoTheWork;
  30.  
  31.   CONST
  32.     Alert1 = '[1][This is the first alert box][other|QUIT]';
  33.     Alert2 = '[1][This is the second alert box][other|QUIT]';
  34.  
  35.   BEGIN
  36.     AESMisc.ShellWrite (TRUE, AESMisc.graphicPrgm, 'D:\GEP_ED.PRG', '');
  37.   END DoTheWork;
  38.  
  39.  
  40. BEGIN
  41.   GEMEnv.InitGem(GEMEnv.RC, devHdl, done);
  42.   IF done THEN
  43.     gemHdl:= GEMEnv.CurrGemHandle ();
  44.     IF NOT Accessory () THEN
  45.       (*
  46.        * Started as normal program -> activate immediately
  47.        *)
  48.       DoTheWork
  49.     ELSE
  50.       (*
  51.        * Started as accessory -> wait for activation via gem-menu
  52.        *)
  53.       menuEntry:= '  Accessory Demo';
  54.       RegisterAcc(ADR(menuEntry), menuID , done);
  55.       IF done THEN
  56.         LOOP
  57.           MessageEvent(msg);
  58.           IF (msg.msgType = accOpen) THEN
  59.             DoTheWork
  60.           END
  61.         END               (* Endless loop! Accessories never terminate! *)
  62.       ELSE
  63.         FormAlert(1, "Can't install AccDemo", retButton)
  64.       END
  65.     END
  66.   END
  67. END AccDemo.
  68.